home *** CD-ROM | disk | FTP | other *** search
- 3DS2POV Version 1.8 Oct/93
- Copyright (c) 1993 by Steve Anger and Jeff Bowermaster
-
- This program reads a 3D Studio .3DS file and writes a POV-Ray, Vivid or
- Polyray raytracer scene file. Cameras, lights, spotlights, and mesh objects
- are all converted. Basic material properties such as colour, reflection,
- and transparency are converted however image maps and bump maps must be
- converted manually.
-
- POV-Ray users! Since POV-Ray 2.0 has now been released to the public the
- default output format has been changed to POV-Ray 2.0. If you're still
- using POV-Ray 1.0 you can still generate 1.0 compatible files by using
- the -op1 switch.
-
-
- Hardware requirements:
-
- The 3ds2pov.exe executable requires a minimum of a 386 or a 486 with a
- math co-processor. At least 2MB RAM is recommended. It's compatible with
- most 386 memory managers and DPMI servers.
-
-
- Syntax: 3ds2pov inputfile[.3ds] [outputfile] [options]
-
- Options:
- -snnn - Generates smooth triangles. The boundaries between triangles
- are only smoothed if the angle between the triangles is less
- that nnn degrees. -s0 will not smooth any triangles while
- -s180 will smooth all triangles. Values from -s45 to -s90
- usually work well. If unspecified smoothing defaults to -s70.
-
- -l<filename> - Specifies an include file containing texture declarations for
- common 3DS materials. Up to 10 libraries can be specified.
-
- -a<filename> - Use animation information in specified .vue file.
-
- -fnnn - Generate frame nnn of animation (must be used with -a
- parameter).
-
- -x<object> - Exclude this object from the conversion.
-
- -b<object> - Replace this object with a box during the conversion. If no
- object is specified then all objects will be affected.
-
- +i, -i - Turn internal bounding on or off for POV-Ray. If not specified
- internal bounding defaults to on for POV-Ray 1.0 and off for
- POV-Ray 2.0.
-
- +v, -v - Turn verbose status messages on or off (off by default).
-
- -op - Output to POV-Ray 2.0 format (default)
- -op1 - Output to POV-Ray 1.0 format
- -ov - Output to Vivid format
- -ol - Output to poLyray format
- -or - Output to Raw triangle format.
-
- Note: When specifying object names on the command line, object names that
- contain spaces must be enclosed in double quotes. e.g. -x"BEACH BALL"
-
-
- Use:
- 3ds2pov robot -lrobotmtl.inc
-
- assumes the input file is robot.3ds and outputs to robot.pov and
- robot.inc in the current directory. The file robot.pov will contain
- the camera, light sources, and list of materials used (basically everything
- you may want to edit) and robot.inc contains the triangle mesh data.
-
- Predefined materials in robotmtl.inc.inc will be automatically used if the
- names match (case is important), otherwise 3ds2pov will generate a material
- definition based on the information in the .3DS file. The files 3ds.inc and
- v3ds.vs are included as examples of how to setup material libraries for
- POV-Ray and Vivid.
-
-
- Materials Conversion:
-
- The 3DS to raytracer material properties conversion is functional but far
- from perfect. Basic material properties such as object colour, reflection
- and transparency are automatically converted but image maps, bump maps, and
- reflection maps are ignored. In most cases the converted material should
- match the original reasonably well however it's not uncommon for some
- materials to come out completely wrong. Expect to have to do some manual
- tweaking.
-
-
- Smoothing:
-
- 3ds2pov doesn't use 3D Studio's smoothing group information and instead
- does it's own smoothing. The amount of smoothing applied is controlled by
- the -s parameter and specifies the maximum angle that will be smoothed. The
- default of -s70 usually works for most scenes but you may find that some
- scenes require more or less smoothing. This parameter works just like the
- Auto Smooth option in 3DS.
-
-
- Animation:
-
- The animation information is exported from 3ds via a .vue file that can
- be created in the 3DS keyframer (Render/Setup/Make .VUE). By specifying the
- name of the .vue file and a frame number 3ds2pov will generate a scene file
- for that specific frame.
-
- e.g. 3ds2pov robot -arobot.vue -f5
-
- The option -arobot.vue tells it to get the animation information from file
- robot.vue and option -f5 tells it to render frame #5. To generate a whole
- animation you can create a batch file that runs 3ds2pov and the raytracer
- for each frame in the animation. The program 3dsani is included to make the
- generation of this file a little easier.
-
- Syntax: 3dsani inputfile [options]
-
- Options:
- -a<filename> - Specifies the name of the 3ds animation (.vue) file.
- If unspecified defaults to inputfile.vue.
-
- -t<filename> - Specifies the name of the template (.tpl) file.
- If unspecified defaults to inputfile.tpl.
-
- -o<filename> - Specifies the name of the output (.bat) file.
- If unspecified defaults to inputfile.bat.
-
- -snnn - Start animation at frame nnn. If unspecified the start frame
- is taken from the .vue file.
-
- -ennn - End animation at frame nnn. If unspecified the end frame is
- taken from the .vue file.
-
- -pnnn - Render every nnn'th frame. If unspecified defaults to 1.
-
-
- Example:
- 3dsani robot -tani1.tpl
-
- generates a batch file named robot.bat that will execute 3ds2pov and povray
- once for each frame of the animation. The beginning and ending frame numbers
- are determined from the file robot.vue. The format of the batch file is
- determined from the template file ani1.tpl. Basically the template file is
- duplicated once for each frame but with all occurrences of the characters $
- and # replaced by the file name and frame number respectively. Several
- sample template files are included which can be tailored to your specific
- needs.
-
-
- Environment Variable:
-
- If you find that you're often using the same command options over and over
- again you can set up your default command line options in the 3DS2POV
- environment variable. e.g. If you generally use Vivid as your renderer you
- may want to add the following line to your autoexec.bat:
-
- set 3DS2POV=-ov
-
- Commands specified in the environment variable will be overridden by those
- specified on the command line.
-
-
- Known Bugs/Problems:
-
- Orthogonal/user viewports, and camera roll are not implemented.
-
- Solid background colours work with POV-Ray and Polyray but not with Vivid.
-
- Fog works with POV-Ray but not with Polyray or Vivid.
-
- Gradient and image mapped backgrounds are not implemented.
-
- The camera field-of-view conversion isn't perfect. The rendered FOV will be
- close to the original but it won't be exact.
-
- If the 3DS file contains more than one camera it'll use the first one it
- comes across. All additional cameras will be commented out.
-
- There is a known problem with the version of POV-Ray 1.0 that was shipped with
- the Image Lab book that prevents smooth triangles from rendering. If you have
- this version you can download the latest version from CompuServe or a local
- BBS (look for POVIBM.ZIP).
-
- POV-Ray 1.0 doesn't handle refraction very well for triangle meshes. If you
- want realistic refraction in your image you should output to POV-Ray 2.0 with
- no bounding boxes (2.0 will bound the scene itself). Also only a single
- material should be used on each refracting object (don't apply materials
- to individual faces).
-
-
- Files included in archives:
-
- 3DS2POV.EXE - The converter.
- 3DSANI.EXE - Animation generation utility.
- 3DS2POV.DOC - This file!
-
- SAMPLES.ZIP - Sample files.
- DIAM.3DS - A sparkling diamond. Diamond data from Jeff B.
- ROBOT.3DS - A simple robot animation
- ROBOT.VUE - Exported animation information from ROBOT.3DS
- POVDIAM.BAT - Batch file to render DIAM.3DS with POV-Ray 2.0
- VIVDIAM.BAT - " " " " " " Vivid
- POVROBOT.BAT - Batch file to render ROBOT.3DS animation with POV-Ray
- VIVROBOT.BAT - " " " " " " " Vivid
- DIAMMTL.INC - POV-Ray material definitions for DIAM.3DS
- ROBOTMTL.INC - " " " " ROBOT.3DS
- DIAMMTL.VS - Vivid material definitions for DIAM.3DS
- ROBOTMTL.VS - " " " " ROBOT.3DS
- ROBOTPOV.TPL - Template used to generate POVROBOT.BAT
- ROBOTVIV.TPL - " " " " VIVROBOT.BAT
- ANI*.TPL - Sample template files for POV-Ray and Vivid
- 3DS.INC - A sample 3DS material library for use with POV-Ray
- V3DS.VS - " " " " " " " " Vivid
-
- SOURCE.ZIP - Source code for 3DS2POV.EXE and 3DSANI.EXE.
-
-
- Compiler:
-
- The protected mode version of this program was compiled with DJGPP 1.10,
- DJ Delorie's DOS port of the GNU C/C++ compiler. Source code and executables
- for this compiler and the DOS extender can be obtained from the ftp site
- omnigate.clarkson.edu in directory ~ftp/pub/msdos/djgpp. DJGPP can also be
- found on CompuServe and many BBS systems.
-
-
- Future:
-
- For a while I've been playing around with the idea of adding one or two
- radiosity packages to the list of supported renders but I don't know much
- about what radiosity packages are available. Anyone have a favorite
- radiosity program (preferably one that's freely available). Is radiosity
- rendering of multi-1000 triangle meshes practical on desktop computers?
-
-
- Revision History:
-
- 10/05/93
- Ver. 1.8 Default output format is now POV-Ray 2.0 (if you're still using
- POV-Ray 1.0 use the -op1 switch). Added automatic conversion of
- basic material properties (colour, relfection, transparency).
- Selected objects can be converted as boxes for testing. Default
- smoothing changed from 60 degrees to 70 degrees. The executable
- is now DPMI compliant and should work under OS/2 and Windows.
-
- 05/07/93
- Ver. 1.7 Directly reads .3DS files instead of the slow/bulky .ASC files.
- Added support for 3DS 2.01 .vue files and fixed some bugs with
- the .vue file parsing. Added morphing. Added support for the
- Polyray raytracer. Textures now move with animated objects.
- Default switches can be set in the 3DS2POV environment variable.
-
- 12/14/92
- Ver. 1.6 Animation support added. Added support for Vivid output.
- Identifiers that begin with a digit are now prefixed with
- the letter 'N' rather than an underscore (for compatibility
- with Vivid). Fog works (I think).
-
- 10/18/92
- Ver. 1.5b Correctly handles spotlight hotspot parameter. Multiple texture
- libraries can be specified. A bug that occasionally resulted in
- a zero length include file fixed.
-
- 08/06/92
- Ver. 1.5 Fixed bug with spotlight falloff parameter.
-
- 07/27/92
- Ver. 1.4 Modified for POV-Ray 1.0 output format. Uses 1.0's new box
- primitive for bounding. Bounding ellipsoids are no longer used.
- Added support for spotlights.
-
- 06/04/92
- Ver. 1.3 Modified the parser to handle 3D Studio 2.0 ascii dump files as
- well as 1.0. Added limited support for automatic texture handling.
-
- 05/03/92
- Ver. 1.2 Added the octree bounding code from txt2pov. The parser is now a
- little more bullet proof and should be able to handle minor
- changes in the format of the ascii dump file.
-
- 11/08/91
- Ver. 1.1c Fixed the bug I inadvertently added to the txt output in v1.1b.
- Added texture names to the txt output. These are used by v1.3 of
- txt2pov (formerly txt2dkb). The 32 bit version no longer requires
- removal of 386 memory managers. SA
-
- 10/15/91
- Ver. 1.1b Minor source code modifications to allow program to compile with
- GNU C 32 bit compiler. Note: The 32 bit version (3ds2dkbx.exe)
- requires a 386 /w 387 or a 486 to run. 2M or more RAM is
- recommended. Any 386 memory managers (386^Max/QEMM, etc) must be
- removed before the 32 bit version will run. SA
-
- 9/03/91
- Ver. 1.1 RIGHT <1.33 0.0 0.0 > in VIEW_POINT produces much better circles.
- COLOR for the light sources moved outside the TEXTURE block (oops.
- I'm still learning...) Jeff
-
- 8/24/91
- Ver. 1.0 Original release, DKB, simple TurboC parser by Jeff.
- Very slow by itself, workable when used in conjunction with
- Steve's optimizing bounder. (TXT2DKB).
-
- Addresses:
- Steve Anger, Guelph, ON, Canada
- CIS: 70714,3113
- Internet: 70714.3113@compuserve.com
-
- Jeff Bowermaster, Greensboro, NC
- CIS: 72040,2117
- Internet: bowerman@garfield.ncat.edu
-
- ADEnet Boards i.e.:TGA: (510)524-2780
-